    if ($args =~ /^(a?round|a?bout)$/i) {
      my $lroundsub = sub {
        my ($room) = @_;
        if (my @cont = grep $self->can_see($_), @{$room->contents}) {
        
          return [list=>{mark=>'none'}, map [li=>{}, $_],
	    $self->pluralize( sub {$_[0]->nphr_for_look($self, $_[1])}, (
	      map [$_, $_->nphr_for_look($self)], @cont
	    ))
          ];
        } else {
          return [p=>{}, 'Nothing.'];
        }
      };
      # FIXME: look around needs checks for max vision distance, light level.
      push @$rep, [title=>{}, "You look around and see:"], [title=>{}, "here:"], $lroundsub->($obj);
      foreach my $dir (keys %{$obj->exits}) {
        my $dist = 0; my $nroom = $obj; my ($exit, %seen);

        while ($exit = $nroom->exits->{$dir} 
               and $nroom = MObjectDB->get($exit->{to})
               and !$exit->{minor}
               and !$seen{$nroom}
        ) {
          $dist++;
          if ($exit->{closed}) {
            push @$rep, [line=>{}, $dist." room".($dist==1 ? ' ' : 's ').$dir
              . ($exit->{door} ? ": " . $exit->{door}: '')];
          } else {
            my $stuff = $lroundsub->($nroom);
            push @$rep, [line=>{}, $dist." room".($dist==1 ? ' ' : 's ').$dir
              . ($exit->{door} ? ", through " . $exit->{door}: '') . ":"],
              $stuff
              if $stuff;
          }
          $seen{$nroom}++;
        }
      }
      return $rep;
    }
